package com.tangcco.lockwell.service;

import com.github.pagehelper.PageInfo;
import com.tangcco.lockwell.domain.Inform;
import com.tangcco.lockwell.domain.dto.inform.InformDto;
import com.tangcco.lockwell.viewmodel.admin.Inform.AcceptInformVM;
import com.tangcco.lockwell.viewmodel.admin.Inform.InformVM;
import com.tangcco.lockwell.viewmodel.admin.user.UserGroupVm;

import java.util.List;

public interface InformService {

    int insertSelectiveNotNull(Inform inform);
    //修改是否已读状态
    int updateIsRead(Integer informId);


    //灵活查询
    PageInfo<InformVM> selectSelective(InformVM informVM);

    //根据id删除
    int deleteByPrimaryKey(Integer id);

    int indesert(Inform record,int[] uids,Integer isAll);
    PageInfo<UserGroupVm> selectUsersGroup(UserGroupVm userGroupVm);

    //根据发送消息Id查询相关信息
    List<AcceptInformVM> selectAcceptInform(AcceptInformVM model);

    /**
     * 学生端消息列表
     * @param userId
     * @return
     */
    List<InformDto> selectListForStudent(Integer userId,Integer isRead);

    /**
     * 全部标为已读
     * @param userId
     */
    void markAllAsReadByUserId(Integer userId);

    /**
     * 标为已读
     * @param childId
     */
    void markAsRead(Integer childId);

    /**
     * 消息详情（学生端）
     * @param informId
     * @return
     */
    InformDto selectDetailForStudent(Integer informId);
    /**
     * 消息详情（老师端）
     * @param informId
     * @return
     */
    List<InformDto> selectDetailForTeacher(Integer informId);

    List<InformDto> selectListForTeacher(Integer sendUserId);
}
